package org.apcs.pokemon.pokemon;

/**
 * Authors:			Zachary Reed
 * Date Created:	Mar 26, 2010
 * Last Modified:	Mar 27, 2010
 * Package:			org.apcs.pokemon.pokemon
 * Filename:		Caterpie.java
 * Description:		A class that defines the default stats for Caterpie &
 * 					constructs new Caterpie pokemon.
 */

/** Caterpie
 * Number:			010							Base HP:  45	HP Yield:   1
 * M/F Ratio:		50% male					Base AT:  30	AT Yield:   0
 * Type(s):			Bug 						Base DE:  35	DE Yield:   0
 * Exp @ lvl 100:	1,000,000					Base SA:  20	SA Yield:   0
 * Evolves @ lvl:	7             				Base SD:  20	SD Yield:   0
 * Evolves into:	Metapod    					Base SP:  45	SP Yield:   0
 * Base moves:		Tackle,String Shot 							XP Yield:  53
 */

public class Caterpie extends Pokemon {

    protected static final int NUMBER			=	10;
	protected static final String NAME			=	"Caterpie";
	protected static final double MFRATIO		=	50;
	protected static final int[] TYPES			=	{11,11};
	protected static final int[] STATS			=	{45,30,35,20,20,45};
	protected static final int[] EVYIELDS		=	{1,0,0,0,0,0,53};
	protected static final int EXPTYPE			=	2;
	protected static final int EVOLVES_AT_LVL	=	7;
	protected static final int EVOLVES_INTO		=	11;
	protected static final int[] BASE_MOVES		=	{33,81};
        protected static final int[][] LEVEL_UP_MOVES   =   {{15,450}};
        protected static final int[] TMHM_MOVES         =   {};

	/* Create new Caterpie with default name */
	public Caterpie(int trainerID) {
		super(NUMBER,NAME,false,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Caterpie with nickname */
	public Caterpie(String name,int trainerID) {
		super(NUMBER,name,true,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Caterpie with default name & custom level*/
	public Caterpie(int level,int trainerID) {
		super(NUMBER,NAME,false,level,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}

	/* Create new Caterpie with nickname & custom level */
	public Caterpie(String name,int level,int trainerID) {
		super(NUMBER,name,true,level,Pokemon.calcGender(MFRATIO),TYPES,
			STATS,EVYIELDS,EXPTYPE,EVOLVES_AT_LVL,EVOLVES_INTO,
			trainerID,BASE_MOVES,LEVEL_UP_MOVES,TMHM_MOVES);
	}
}
